package com.bbs.generator;


import com.baomidou.mybatisplus.generator.config.*;
import org.apache.ibatis.jdbc.ScriptRunner;

import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * 代码生成器
 */

public class BaseGeneratorTest {

    /**
     * 执行数据库脚本
     */

    protected static void initDataSource(DataSourceConfig dataSourceConfig) throws SQLException {

        /**
         * initDataSource 方法 用于执行数据库脚本，例如初始化数据库表等。
         * DataSourceConfig 提供数据库连接。
         * ScriptRunner 是 MyBatis 提供的一个工具类，用于执行 SQL 脚本。这个脚本运行器会从 InputStreamReader 中读取 SQL 脚本内容，然后在数据库上执行。
         */
        Connection conn = dataSourceConfig.getConn();
        ScriptRunner scriptRunner = new ScriptRunner(conn);
        scriptRunner.setAutoCommit(true);
        scriptRunner.runScript(new InputStreamReader((null)));
        conn.close();
    }

    /**
     * 策略配置
     */
    protected static StrategyConfig.Builder strategyConfig() {
        return new StrategyConfig.Builder();
    }

    /**
     * 全局配置
     */
    protected static GlobalConfig.Builder globalConfig() {
        return new GlobalConfig.Builder();
    }

    /**
     * 包配置
     */
    protected static PackageConfig.Builder packageConfig() {
        return new PackageConfig.Builder();
    }

    /**
     * 模板配置
     * @return
     */
    protected static TemplateConfig.Builder templateConfig() {
        return new TemplateConfig.Builder();
    }

    /**
     * 注入配置
     */
    protected static InjectionConfig.Builder injectionConfig() {
        return new InjectionConfig.Builder();
    }
}
